<?php
namespace App\Util;

/**
 * 枚举基类
 * @author sherlock.wooton <i@wutong.me>
 * @date 16/1/5 10:22
 */
class EnumBase {

    /**
     * 获取列表
     * @return array
     */
    public static function getList(){
        return [];
    }

    /**
     * 判断是否存在指定的值
     * @param mixed $value
     * @return bool
     */
    public static function hasValue($value) {
        $result = FindHelper::getArrayDetailByNeedle(static::getList(), 'value', $value);
        return is_array($result);
    }

    /**
     * 根据值获取标签
     * @param mixed $value
     * @return string
     */
    public static function getLabel($value) {
        $result = FindHelper::getArrayDetailByNeedle(static::getList(), 'value', $value);
        if ($result)
            return $result['label'];
        return '未知';
    }

    /**
     * 根据值获得详细
     * @param mixed $value
     * @return array|null
     */
    public static function getDetail($value){
        $result = FindHelper::getArrayDetailByNeedle(static::getList(), 'value', $value);
        if ($result)
            return $result;
        return null;
    }

    /**
     * 根据标签获取值
     * @param mixed $value
     * @return string
     */
    public static function getValue($label) {
        $result = FindHelper::getArrayDetailByNeedle(static::getList(), 'label', $label);
        if ($result)
            return $result['value'];
        return 0;
    }
}